1. Field of the Invention
This invention is concerned with the field of telecommunications and with the detection and analysis of call progress signals generated by a telecommunications system, and, more particularly, with international call progress analysis.
2. Discussion of Related Art
Call progress analysis (CPA) involves the monitoring of a telecommunications channel for identifiable system-generated call progress signals which indicate the status of the call being monitored. Examples of such signals are dial tone, ringback, busy, and the like. These signals not only provide audio information to a user of the telephone line but, if properly monitored, allow steps to be taken toward connection of the call or one of various other appropriate actions.
CPA has been implemented in the past as part of a programmable telecommunications switch. Typically, these conventional digital telecommunications switches employ a time slot interchange (TSI) to effect switching using time division multiplexing (TDM) techniques. In addition to controlling the switching of calls, digital telecommunications switches are also usually required to provide communications or call processing services. Such services include tone generation and tone detection, but may also include more sophisticated services to meet the requirements of a particular application. A switch of this type is used in a system described by U.S. Pat. No. 5,349,579 entitled xe2x80x9cTELECOMMUNICATIONS SWITCH WITH PROGRAMMABLE COMMUNICATIONS SERVICES.xe2x80x9d That patent is assigned to the assignee of the present invention, and is incorporated herein by reference.
In the past, call progress signals have been distinguished based on a minimum energy level present in one or more frequency bands, which energy had a particular cadence (i.e. how the signal energy alternates between being present and being absent). One example of such a system is demonstrated by European Patent Application EP 0 493 056 A2, submitted by Gupta, et al. (the xe2x80x9cGuptaxe2x80x9d system).
The Gupta system involves call progress analysis in which different signals are differentiated by the cadence patterns they follow. Different cadence patterns may be stored during setup of the system. The presence of sufficiently similar cadence patterns on the monitored telephone line allows the system to determine when certain call progress signals are present.
The Gupta system relies on combinational logic to verify that the signal energy on the monitored line is in the desired frequency bands. When the detected energy is in any one of the expected frequency bands, and when an expected cadence pattern is detected, the presence of the call progress signal having that cadence is confirmed. The Gupta system does not report all frequencies to all pattern detectors, only to those pattern detectors whose patterns contain these frequencies. The routing of frequencies to pattern detectors is static. This routing cannot be modified on a call-by-call basis. If the signal energy is in one of the expected frequency bands, the system confirms the presence of a call progress signal described by the detected cadence pattern, regardless of whether the signal contains the frequencies associated with that particular call progress signal. As such, a spurious signal having the cadence of one call progress signal, but the frequency content of another, could be confirmed by the Gupta system as being the call progress signal having that detected cadence pattern. In addition, it does not appear that Gupta provides the capability of customization by a user of the types of patterns that user desires in a plan. Gupta requires separate hardware for every defined plan, which could become costly and introduce space constraints on the card.
With the advent of localized telephone systems such as private branch exchanges (PBXs), the types of call progress signals are becoming more diversified. The larger number of different signals allows a system to perform a larger number of various operations. However, it also requires that a CPA system be able to distinguish the additional call progress signals.
One example of the problems confronting modern CPA is that different telecommunications systems use different call progress signals in different capacities. That is, a particular call status may be identified by one signal in a first PBX, and by a completely different signal in a second. A similar problem is prevalent with regard to the public telephone networks of different countries, many of which use vastly different call progress signals for the same functions. In either of these situations, no standard exists with regard to the use of call progress signals. Therefore, a conventional CPA system must either be custom built for the particular country or the particular PBX system for which it is intended, or must be versatile enough to accommodate different sets of call progress signals.
The programmability of the Gupta system allows a system to be set up for a particular designated environment. However, if that environment contains signals, which are too closely, related in cadence (while having a different frequency spectrum), the system will be unable to distinguish them. Also, the frequencies and tones in the Gupta system are not automatically customized by the definitions of the call progress patterns to be detected. A high accuracy CPA system would allow the discrimination of different signals, which were closely related in frequency or cadence, and would reduce the false alarm rate of detection. Such discrimination would be customized on a call-by-call basis. This would greatly increase the number of distinguishable call progress signals and, thus, provide more system versatility.
The present invention provides a call progress analysis system and method for use with a programmable telecommunications switch. The system is preferably completely generic in that all of the detection parameters may be configured for the specific application of any particular end user. The system includes a host, which communicates with a data processor on the switch. The data processor controls the operations of one or more digital signal processors (DSPs) which are used to monitor channels of the switch for call progress signals.
The data processor runs a main detection program which processes detected signal data and compares it to stored information that represents pre-defined call progress signals. Stored in a memory unit is at least one group of tone descriptors that define different expected tones. Each tone descriptor defines a tone by the presence of particular frequencies at a minimum threshold energy level. For a particular end user who needs to detect a particular set of call progress signals, the tone descriptors may be configured by storing parameters which describe the frequencies and relative energy levels which are associated with the those signals. Also stored in memory is at least one set of pattern descriptors which reference the tone descriptors, and which define different expected cadence patterns. Like the tone descriptors, these pattern descriptors are configured for the particular telecommunications system being serviced by setting the parameters of the pattern descriptors such that they describe those call progress signals which the system user is likely to encounter.
In response to a message to perform CPA, the processor dynamically instructs an assigned DSP to begin monitoring a particular channel. The DSP functions as a signal detector and returns information to the processor. In the preferred embodiment, the DSP has access to the tone descriptors and, upon comparing the detected frequencies to the tone descriptors, assembles a message indicative of individual frequencies that are present in the detected signal. A new message is assembled and sent by the DSP to the processor each time there is a significant change in the detected signal. The DSP also includes in each message an indication of the elapsed time since the last message was sent. Thus, a new time interval starts with each significant change in the frequency content of the detected signal. The processor assembles the tones that are sets of frequencies, which are indicated by the DSP message as being present for a given interval. The processor then attempts to match the tones and the duration of the interval to one of the pattern descriptors stored in memory.
The adaptability of the invention to different telecommunications systems having different call progress signals is provided in a number of ways.
In accordance with one aspect of the invention, the frequencies and tones detected by the switch can be customized. The frequencies are combined to create call progress tones, which are then combined during sequential intervals of time to form call progress patterns. In addition, a frequency mask is computed that is specific to a pre-defined call progress analysis (xe2x80x9cCPAxe2x80x9d) class. A CPA class is defined as a user-customizable set of certain prescribed patterns, such as a busy pattern, or a dial pattern. This frequency mask is used to cause the DSP receiver to substantially ignore frequencies that are not part of any CP pattern in a CPA class of interest. Accordingly, the DSP performs frequency detection that is customized to each channel, which in turn reduces the false alarm rate of the detection.
In accordance with yet another embodiment of this invention the parameter values which define each of the pattern descriptors, as well as the parameter values which define each of the tone descriptors. Since each pattern descriptor references at least one tone, finding a pattern, which matches the detected signal, requires matching both the cadence and the tone(s) of the call progress signal it defines. By specifying appropriate tone and cadence parameters, a set of customized call progress signals to be detected by the system is created.
Once the system is configured and put into operation, CPA may be invoked at any time by the host or by any other call processing task of the system. For simplicity, the following description refers to the host as being the source of the request. Once instructed to begin performing CPA, an assigned DSP begins reporting individual frequencies that identify the tones detected on the monitored channel. With the first message received, the processor begins comparing the detected tones (sets of frequencies) to those defined in the pattern descriptors. However, it waits for the first complete tone before doing any interval matching. That is, the processor waits for the first detected occurrence of silence on the channel before trying to match the duration of an interval with the interval duration parameters of the pattern descriptors. However, since the first tone message received may define a continuous tone (such as a dial tone), the tone message is compared to those pattern descriptors that describe a continuous tone. If the tone parameters match and the duration of the first tone message is long enough, the detected signal may be identified as a continuous tone.
After the first interval (i.e. upon receipt of the second frequency message) the processor proceeds to a xe2x80x9cNot-determinedxe2x80x9d phase, and begins matching the detected parameters to the parameters of the stored pattern descriptors. A possibility list is created of patterns which match with the first interval parameters of tone and interval duration. For each pattern descriptor, the processor keeps track of how many intervals have been successfully matched for that pattern, as new patterns may be introduced to the possibility list during subsequent intervals. Patterns, which no longer match during subsequent intervals, are removed from the possibility list.
The preliminary identification of a matching pattern descriptor is made based on the number of successive intervals matched by a particular pattern. The number of successive intervals, which might be required for a particular pattern, may be configured as part of the defining pattern descriptor. As soon as that pattern has matched the required number of intervals to be declared a probable match, the other patterns are removed from the possibility list and the processor advances to a xe2x80x9cDetermined phase.xe2x80x9d
The Determined phase allows continued verification of the apparent matching pattern descriptor found during the Not-determined phase. The length of the Determined phase depends on another parameter specified for each pattern, which requires the matching process to successfully continue for a certain number of additional intervals. In the event that subsequent intervals do not match with the previously-matched pattern, the program may enter an optional xe2x80x9cPost-determinedxe2x80x9d phase. Whether a matched pattern may proceed to the Post-determined phase depends upon another configurable parameter of the pattern descriptor.
In the Post-determined phase, the possibility list is reinitialized to include all patterns having a xe2x80x9cAccept After Determinedxe2x80x9d flag set. The matching process then continues until a match is found, until all possibilities are eliminated, or until a timer having a configurable time-out value expires. In the latter two cases, the failure to match one of the patterns is reported to the host.
In addition to the above, certain maximum time limits for the Determined and Not-determined phases may be configured to ensure the termination of the matching function after some predetermined time. Parameters may also be specified which provide an initial start-up delay, or which prevent the processor from waiting during an extended period of silence on the channel. Configurable glitch logic may also be provided which intervenes between the DSP detection messages and the processor to filter out signals and silences which are exceedingly short in duration.
An optional Answer Detection function is also configurable, which allows the specification of the maximum number of new tone messages during a particular period of time. This function, when active, is invoked once for every new tone message. Since a human voice answering a call generates a number of different frequency changes over a relatively short period of time, it creates a quick sequence of tone messages. The Answer Detection function therefore allows an xe2x80x9canswerxe2x80x9d to be declared more quickly than would otherwise occur in the normal course of the main detection program.
In accordance with another aspect of this invention, the described frequency mask can also be used to perform call progress analysis using a DSP receiver that functions as an energy detector rather than a frequency discriminator. In this case, the DSP detects the presence or absence of energy on the channel, and this information is reported to the processor. The processor then uses the frequency mask during intervals in which energy is present, and then applies the same tone and pattern matching logic described previously. An advantage of this scheme is that an energy detector can have a simpler implementation than a frequency discriminator, which can allow the DSP to provide more channels of energy detection than frequency discrimination. This allows the telecommunications switch to provide an optional implementation of call progress analysis using energy detection, which presents a lower-cost, higher-density option to the customer. Another advantage of this scheme is that the same tone and pattern matching logic can be used with a frequency discriminator or an energy detector, thus insuring consistent behavior between frequency-discrimination and energy-detection modes, and also simplifying the databases of classes, patterns, and tones that are needed.